/*
 * @(#)Dict.java   1.11 2000/08/16
 *
 */

package org.w3c.tidy;

/**
 *
 * Tag dictionary node
 *
 * (c) 1998-2000 (W3C) MIT, INRIA, Keio University
 * See Tidy.java for the copyright notice.
 * Derived from <a href="http://www.w3.org/People/Raggett/tidy">
 * HTML Tidy Release 4 Aug 2000</a>
 *
 * @author  Dave Raggett <dsr@w3.org>
 * @author  Andy Quick <ac.quick@sympatico.ca> (translation to Java)
 * @version 1.0, 1999/05/22
 * @version 1.0.1, 1999/05/29
 * @version 1.1, 1999/06/18 Java Bean
 * @version 1.2, 1999/07/10 Tidy Release 7 Jul 1999
 * @version 1.3, 1999/07/30 Tidy Release 26 Jul 1999
 * @version 1.4, 1999/09/04 DOM support
 * @version 1.5, 1999/10/23 Tidy Release 27 Sep 1999
 * @version 1.6, 1999/11/01 Tidy Release 22 Oct 1999
 * @version 1.7, 1999/12/06 Tidy Release 30 Nov 1999
 * @version 1.8, 2000/01/22 Tidy Release 13 Jan 2000
 * @version 1.9, 2000/06/03 Tidy Release 30 Apr 2000
 * @version 1.10, 2000/07/22 Tidy Release 8 Jul 2000
 * @version 1.11, 2000/08/16 Tidy Release 4 Aug 2000
 */

public class Dict {

    /* content model shortcut encoding */

    public static final int CM_UNKNOWN         = 0;
    public static final int CM_EMPTY        = (1 << 0);
    public static final int CM_HTML         = (1 << 1);
    public static final int CM_HEAD         = (1 << 2);
    public static final int CM_BLOCK        = (1 << 3);
    public static final int CM_INLINE       = (1 << 4);
    public static final int CM_LIST         = (1 << 5);
    public static final int CM_DEFLIST      = (1 << 6);
    public static final int CM_TABLE        = (1 << 7);
    public static final int CM_ROWGRP       = (1 << 8);
    public static final int CM_ROW          = (1 << 9);
    public static final int CM_FIELD        = (1 << 10);
    public static final int CM_OBJECT       = (1 << 11);
    public static final int CM_PARAM        = (1 << 12);
    public static final int CM_FRAMES       = (1 << 13);
    public static final int CM_HEADING      = (1 << 14);
    public static final int CM_OPT          = (1 << 15);
    public static final int CM_IMG          = (1 << 16);
    public static final int CM_MIXED        = (1 << 17);
    public static final int CM_NO_INDENT    = (1 << 18);
    public static final int CM_OBSOLETE     = (1 << 19);
    public static final int CM_NEW          = (1 << 20);
    public static final int CM_OMITST       = (1 << 21);

    /*

     If the document uses just HTML 2.0 tags and attributes described it as HTML 2.0
     Similarly for HTML 3.2 and the 3 flavors of HTML 4.0. If there are proprietary
     tags and attributes then describe it as HTML Proprietary. If it includes the
     xml-lang or xmlns attributes but is otherwise HTML 2.0, 3.2 or 4.0 then describe
     it as one of the flavors of Voyager (strict, loose or frameset).
    */

    public static final short VERS_UNKNOWN       = 0;

    public static final short VERS_HTML20        = 1;
    public static final short VERS_HTML32        = 2;
    public static final short VERS_HTML40_STRICT = 4;
    public static final short VERS_HTML40_LOOSE  = 8;
    public static final short VERS_FRAMES        = 16;
    public static final short VERS_XML           = 32;

    public static final short VERS_NETSCAPE      = 64;
    public static final short VERS_MICROSOFT     = 128;
    public static final short VERS_SUN           = 256;

    public static final short VERS_MALFORMED     = 512;

    public static final short VERS_ALL = (VERS_HTML20|VERS_HTML32|VERS_HTML40_STRICT|VERS_HTML40_LOOSE|VERS_FRAMES);
    public static final short VERS_HTML40 = (VERS_HTML40_STRICT|VERS_HTML40_LOOSE|VERS_FRAMES);
    public static final short VERS_LOOSE = (VERS_HTML32|VERS_HTML40_LOOSE|VERS_FRAMES);
    public static final short VERS_IFRAMES = (VERS_HTML40_LOOSE|VERS_FRAMES);
    public static final short VERS_FROM32 = (VERS_HTML40_STRICT|VERS_LOOSE);
    public static final short VERS_PROPRIETARY = (VERS_NETSCAPE|VERS_MICROSOFT|VERS_SUN);

    public static final short VERS_EVERYTHING = (VERS_ALL|VERS_PROPRIETARY);

    public Dict( String name, short versions, int model,
                 Parser parser, CheckAttribs chkattrs )
    {
        this.name = name;
        this.versions = versions;
        this.model = model;
        this.parser = parser;
        this.chkattrs = chkattrs;
    }

    public String name;
    public short versions;
    public int model;
    public Parser parser;
    public CheckAttribs chkattrs;
}
